package com.example.kaogong.sys.service;

import com.example.kaogong.common.utils.RespBean;
import com.example.kaogong.sys.pojo.Paper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.kaogong.sys.pojo.dto.PaperDto;
import com.example.kaogong.sys.pojo.dto.PaperQuestionDto;
import com.example.kaogong.sys.pojo.vo.PaperDetailInfoVo;
import com.example.kaogong.sys.pojo.vo.PaperInfoVo;

import java.util.List;

/**
 * <p>
 * 试卷 服务类
 * </p>
 *
 * @author    
 * @since 2022-03-26
 */
public interface IPaperService extends IService<Paper> {

    /**
     * 教师创建试卷
     * @param paperDto
     * @param name
     * @return
     */
    RespBean createPaper(PaperDto paperDto, String name);

    /**
     * 添加试卷题目
     * @param paperQuestionDtoList
     * @param paperId
     * @return
     */
    RespBean addPaperQuestion(List<PaperQuestionDto> paperQuestionDtoList, Integer paperId);

    /**
     * 删除试卷题目
     * @param paperQuestionDtoList
     * @param paperId
     * @return
     */
    RespBean deletePaperQuestion(List<PaperQuestionDto> paperQuestionDtoList, Integer paperId);

    /**
     * 获取所有已发布试卷的基本信息
     * @return
     */
    RespBean<List<PaperInfoVo>> getAllPublishedPaper();

    /**
     * 获取当前教师所有草稿试卷
     * @param name
     * @param status
     * @return
     */
    RespBean<List<PaperInfoVo>> getTeacherAllPaper(String name, int status);

    /**
     * 根据试卷编号获取试卷详细信息
     * @param paperId
     * @return
     */
    RespBean<PaperDetailInfoVo> getPaperDetailInfoById(Integer paperId);

    /**
     * 删除试卷
     * @param paperId
     * @return
     */
    RespBean deletePaperById(Integer paperId);

    /**
     * 试卷发布
     * @param paperId
     * @return
     */
    RespBean publishPaperById(Integer paperId);
}
